Beluga: Programming with Dependent Types, Contextual Data, and Contexts

نویسنده

  • Brigitte Pientka
چکیده

The logical framework LF provides an elegant foundation for specifying formal systems and proofs and it is used successfully in a wide range of applications such as certifying code and mechanizing metatheory of programming languages. However, incorporating LF technology into functional programming to allow programmers to specify and reason about formal guarantees of their programs from within the programming language itself has been a major challenge. In this paper, we present an overview of Beluga, a framework for programming and reasoning with formal systems. It supports specifying formal systems in LF and it also provides a dependently typed functional language that supports analyzing and manipulating LF data via pattern matching. A distinct feature of Beluga is its direct support for reasoning with contexts and contextual objects. Taken together these features lead to powerful language which supports writing compact and elegant proofs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Covering all bases: design and implementation of case analysis for contextual objects

We consider the question: Does a set of patterns cover all objects of a given type? This is straightforward in the simply-typed setting, but undecidable in the presence of dependent types. We discuss the question in the setting of Beluga, a dependently-typed programming and reasoning environment which supports programming with contextual objects and contexts. We describe the design and implemen...

متن کامل

Programming proofs: a novel approach based on contextual types

We present an overview of Beluga, a dependently-typed programming and proof development environment. Beluga uses a two-level approach: it supports specifying formal systems within the logical framework LF and on top of LF, it provides a dependently-typed functional language that supports manipulating and analyzing LF objects via pattern matching. A distinct feature of Beluga is the explicit sup...

متن کامل

Programming Inductive Proofs - A New Approach Based on Contextual Types

In this paper, we present an overview to programming with proofs in the reasoning framework, Beluga. Beluga supports the specification of formal systems given by axioms and inference rules within the logical framework LF. It also supports implementing proofs about formal systems as dependently typed recursive functions. What distinguishes Beluga from other frameworks is that it not only represe...

متن کامل

Coverage checking contextual objects

We reconsider the question: Does a set of patterns cover all objects of a given type? This is straightforward in the simply-typed setting, but undecidable in the presence of dependent types. We revisit this question in the setting of contextual objects where objects are closed with respect to a context and contexts are intensional, i.e. their structure can be observed by pattern matching. Our a...

متن کامل

Beluga: A Framework for Programming and Reasoning with Deductive Systems

Beluga is an environment for programming and reasoning about formal systems given by axioms and inference rules. It implements the logical framework LF for specifying and prototyping formal systems via higher-order abstract syntax. It also supports reasoning: the user implements inductive proofs about formal systems as dependently typed recursive functions. A distinctive feature of Beluga is th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010